using System;
using System.Collections.Generic;
using ns26;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("MemModule")]
	public class MemModule : MonoClass
	{
		public static IntPtr s_memModule32 => MonoClass.smethod_6<IntPtr>(TritonHs.MainAssemblyPath, "", "MemModule", "s_memModule32");

		public static uint MAX_OUTPUT_SIZE => MonoClass.smethod_6<uint>(TritonHs.MainAssemblyPath, "", "MemModule", "MAX_OUTPUT_SIZE");

		public static List<byte> s_outputBuffer => MonoClass.smethod_7<Class250<byte>>(TritonHs.MainAssemblyPath, "", "MemModule", "s_outputBuffer")?.method_25();

		public static int WAIT_INTERVAL_MILLISECONDS => MonoClass.smethod_6<int>(TritonHs.MainAssemblyPath, "", "MemModule", "WAIT_INTERVAL_MILLISECONDS");

		public MemModule(IntPtr address, string className)
			: base(address, className)
		{
		}

		public MemModule(IntPtr address)
			: this(address, "MemModule")
		{
		}

		public static bool Process()
		{
			return MonoClass.smethod_14<bool>(TritonHs.MainAssemblyPath, "", "MemModule", "Process", Array.Empty<object>());
		}

		public static bool Init()
		{
			return MonoClass.smethod_14<bool>(TritonHs.MainAssemblyPath, "", "MemModule", "Init", Array.Empty<object>());
		}

		public static void Work()
		{
			MonoClass.smethod_17(TritonHs.MainAssemblyPath, "", "MemModule", "Work");
		}

		public static void AppQuit()
		{
			MonoClass.smethod_17(TritonHs.MainAssemblyPath, "", "MemModule", "AppQuit");
		}
	}
}
